package com.extweb4j.web.controller;

import java.io.File;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.ArrayUtils;

import com.extweb4j.core.anno.AuthAnno;
import com.extweb4j.core.anno.Log;
import com.extweb4j.core.controller.ExtController;
import com.extweb4j.core.kit.ExtKit;
import com.extweb4j.core.model.ExtJobCron;
import com.jfinal.aop.Before;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.tx.Tx;
/**
 * Cron控制器
 * @author Administrator
 *
 */
public class CronController extends ExtController{
	
	/**
	 * 列表
	 */
	@AuthAnno
	public void list(){
		int page = getParaToInt("page");
		int limit = getParaToInt("limit");
		String keywords = getPara("keywords");
		Page<ExtJobCron> pageData = ExtJobCron.dao.pageDataBy(page,limit,keywords);
		renderJson(pageData);
	}
	/**
	 * 新增
	 */
	@Log("新建Cron时间表达式")
	@AuthAnno
	@Before(Tx.class)
	public void add(){
		ExtJobCron place = getExtModel(ExtJobCron.class);
		place.set("id",ExtKit.UUID());
		place.set("create_time", new Timestamp(new Date().getTime()));
		place.save();
		success();
	}
	/**
	 * 编辑
	 */
	@AuthAnno
	@Log("编辑Cron时间表达式")
	@Before(Tx.class)
	public void edit(){
		ExtJobCron place = getExtModel(ExtJobCron.class);
		place.update();
		success();
	}
	/**
	 * 删除
	 */
	@AuthAnno
	@Log("删除Cron时间表达式")
	@Before(Tx.class)
	public void delete(){
		ExtJobCron.dao.deleteById(getPara("id"));
		success();
	}
	/*
	 * 批量删除
	 */
	@AuthAnno
	@Log("批量删除Cron时间表达式")
	@Before(Tx.class)
	public void deleteBatch(){
		String[] ids= getParaValues("ids");
		if(ArrayUtils.isEmpty(ids)){
			throw new RuntimeException("请选择要删除的数据");
		}
		for(String id : ids){
			ExtJobCron.dao.deleteById(id);
		}
		success(ids.length+"条记录已删除");
	}
	/**
	 * 获取全部部门JSON
	 */
	public void json(){
		List<ExtJobCron> list = ExtJobCron.dao.findAll();
		renderJson(list);
	}
	/**
	 * 根据id获取记录
	 */
	public void get(){
		ExtJobCron msg = ExtJobCron.dao.findById(getPara("id"));
		renderJson(new Record().set("success", true).set("data", msg));
	}
	
	public void download(){
		renderFile(new File("C://Users/Administrator/Desktop/CronExpGenerator.jar"));
	}
}
